package com.wicket.okrapp.biz.service.dto.common;

import com.wicket.okrapp.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;

import lombok.Data;
import java.util.Objects;

/**
 * @desc PlanningExportDetailDto
 * @使用场景
 */
@Data
public class PlanningExportDetailDto extends BaseDto implements Serializable {

  /**
   * 指标ID
   */
  @ApiModelProperty("指标ID")
  private String objectiveId;

  /**
   * 被评对象目标周期ID
   */
  @ApiModelProperty("被评对象目标周期ID")
  private String evaObjTargetCycleId;

  /**
   * 评价模板名称
   */
  @ApiModelProperty("评价模板名称")
  private String evaluationTempName;

  /**
   * 一级目标分类名称
   */
  @ApiModelProperty("一级目标分类名称")
  private String rootTargetCategoryName;

  /**
   * 末级目标分类名称
   */
  @ApiModelProperty("末级目标分类名称")
  private String lastTargetCategoryName;

  /**
   * 指标简称
   */
  @ApiModelProperty("指标简称")
  private String objectiveShortName;

  /**
   * 虚拟组织下部门ID
   */
  @ApiModelProperty("虚拟组织下部门ID")
  private String deptId;

  /**
   * 负责人就职记录ID
   */
  @ApiModelProperty("负责人就职记录ID")
  private String personLiableInductionRecordId;

  /**
   * 主管就职记录ID
   */
  @ApiModelProperty("主管就职记录ID")
  private String directorInductionRecordId;
/**
     * 部门简称 
     */
    @ApiModelProperty("责任部门简称")
    private String	 deptShortName;

    /**
     * 负责人姓名 
     */
    @ApiModelProperty("负责人姓名")
    private String	 personLiableIdCardName;

    /**
     * 主管姓名 
     */
    @ApiModelProperty("主管姓名")
    private String	 directorIdCardName;

    /**
     * 展示目标值 
     */
    @ApiModelProperty("展示目标值")
    private Double	 showTargetValue;

    /**
     * 冗余单位 
     */
    @ApiModelProperty("目标值单位")
    private String	 unit;

    /**
     * 实际值（数值） 
     */
    @ApiModelProperty("实际值（数值）")
    private Double	 actualValue;

    /**
     * 实际值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("实际值单位")
    private String	 actualValueUnit;

    /**
     * 进度值（数值） 
     */
    @ApiModelProperty("进度值（数值）")
    private Double	 progressValue;

    /**
     * 进度值单位 
     */
    @ApiModelProperty("进度值单位")
    private String	 progressValueUnit;
/**
     * 关联目标内容ID
     */
    @ApiModelProperty("关联目标内容ID")
    private String	 targetCycleContentId;
@Override
  public boolean equals(Object o) {
      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;
      if (!super.equals(o)) return false;
      PlanningExportDetailDto that = (PlanningExportDetailDto) o;
      return  objectiveId == that.objectiveId&&evaObjTargetCycleId == that.evaObjTargetCycleId&&evaluationTempName == that.evaluationTempName&&rootTargetCategoryName == that.rootTargetCategoryName&&lastTargetCategoryName == that.lastTargetCategoryName&&objectiveShortName == that.objectiveShortName&&deptId == that.deptId&&personLiableInductionRecordId == that.personLiableInductionRecordId&&directorInductionRecordId == that.directorInductionRecordId&&deptShortName == that.deptShortName&&personLiableIdCardName == that.personLiableIdCardName&&directorIdCardName == that.directorIdCardName&&showTargetValue == that.showTargetValue&&unit == that.unit&&actualValue == that.actualValue&&actualValueUnit == that.actualValueUnit&&progressValue == that.progressValue&&progressValueUnit == that.progressValueUnit&&targetCycleContentId == that.targetCycleContentId;
    }
@Override
  public int hashCode() {
      return Objects.hash(super.hashCode(), objectiveId,evaObjTargetCycleId,evaluationTempName,rootTargetCategoryName,lastTargetCategoryName,objectiveShortName,deptId,personLiableInductionRecordId,directorInductionRecordId,deptShortName,personLiableIdCardName,directorIdCardName,showTargetValue,unit,actualValue,actualValueUnit,progressValue,progressValueUnit,targetCycleContentId);
    }

}
